package com.mingqijia.gassafety.statistics.service;

import com.mingqijia.gassafety.shared.utils.commonUtils.PageUtil;
import com.mingqijia.gassafety.statistics.request.*;
import com.mingqijia.gassafety.statistics.response.*;
import com.mingqijia.gassafety.db.entity.vo.IndustryUnderUserListVo;
import com.mingqijia.gassafety.webserver.request.CustDetailRequest;
import com.mingqijia.gassafety.webserver.request.RecordLogRequest;
import com.mingqijia.gassafety.webserver.response.*;

import java.util.List;
import java.util.Map;

public interface IndustryScreenService {

    /**
     * 接入用户数
     * @param screenReq
     * @return
     */
    Integer underUserSum(IndustryScreenReq screenReq);

    /**
     * 设备运行情况
     * @param screenReq
     * @return
     */
    IndustryDeviceRunningCaseResp deviceRunningCase(IndustryScreenReq screenReq);

    /**
     * 工单情况
     * @param req
     * @return
     */
    List<OrderConditionResponse> orderCondition(IndustryScreenOrderConditionReq req);

    /**
     *
     * @param screenReq
     * @return
     */
    ConsumerMapGroupResponse queryCustMapGroupList(IndustryMapGroupRequest request);

    ConsumerMapResponse queryBoundaryCustList(IndustryConsumerMapRequest request);

    //告警信息
    List<IndustryConsumerResponse> warningInfoGas(IndustryScreenWarningReq warningReq);

    /**
     * 接入用户数
     * @param userListReq
     * @return
     */
    PageUtil<IndustryUnderUserListVo> underUserList(IndustryUnderUserListReq userListReq);

    ConsumerDetailResponse consumerDetailGas(CustDetailRequest request);

    Map<String, Integer> getConditionSum(IndustryScreenWarningReq warningReq);


    Map<String, Integer> warningSum(IndustryScreenWarningReq warningReq);

    /**
     * 大屏客户设备详情
     * @param request
     * @return
     */
    ConsumerDeviceDetailResp consumerDeviceDetail(CustDetailRequest request);

    PageUtil<IndustryAlertLogResp> getAlarmList(IndustryRecordRequest req);

    PageUtil<IndustryBrokenLogResp> broken(IndustryRecordRequest req);
}
